﻿
using System;
using System.Data.SqlClient;
using System.Globalization;
using System.Runtime.Serialization;
using ProtoBuf;/*https://github.com/ServiceStack/ServiceStack/tree/master/lib*/
using ServiceStack.Text;/*https://github.com/ServiceStack/ServiceStack.Text*/
using V82;
using V82.ОбщиеОбъекты;
using V82.СправочникиСсылка;
using V82.СправочникиОбъект;
using V82.ДокументыСсылка;
using V82.Перечисления;//Ссылка;
namespace V82.СправочникиОбъект
{
	[ProtoContract]
	[DataContract]
	public partial class УчетныеЗаписиЭлектроннойПочты:СправочникОбъект
	{
		public bool _ЭтоНовый;
		public bool ЭтоНовый()
		{
			return _ЭтоНовый;
		}
		[DataMember]
		[ProtoMember(1)]
		public Guid Ссылка {get;set;}
		[DataMember]
		[ProtoMember(2)]
		public long Версия {get;set;}
		[DataMember]
		[ProtoMember(3)]
		public string ВерсияДанных {get;set;}
		/*static хэш сумма состава и порядка реквизитов*/
		/*версия класса восстановленного из пакета*/
		[DataMember]
		[ProtoMember(4)]
		public bool ПометкаУдаления {get;set;}
		[DataMember]
		[ProtoMember(5)]
		public bool Предопределенный {get;set;}
		[DataMember]
		[ProtoMember(6)]
		public string/*9*/ Код {get;set;}
		[DataMember]
		[ProtoMember(7)]
		public string/*150*/ Наименование {get;set;}
		[DataMember]
		[ProtoMember(8)]
		public string/*(100)*/ SMTPСервер {get;set;}//Сервер исходящей почты (SMTP)
		[DataMember]
		[ProtoMember(9)]
		public string/*(100)*/ POP3Сервер {get;set;}//Сервер входящей почты (POP3)
		[DataMember]
		[ProtoMember(10)]
		public decimal/*(4)*/ ПортSMTP {get;set;}//Порт SMTP
		[DataMember]
		[ProtoMember(11)]
		public decimal/*(4)*/ ПортPOP3 {get;set;}//Порт POP3
		[DataMember]
		[ProtoMember(12)]
		public string/*(200)*/ Логин {get;set;}
		[DataMember]
		[ProtoMember(13)]
		public string/*(200)*/ Пароль {get;set;}
		[DataMember]
		[ProtoMember(14)]
		public bool ТребуетсяSMTPАутентификация {get;set;}//Требуется SMTP Аутентификация
		[DataMember]
		[ProtoMember(15)]
		public string/*(200)*/ ЛогинSMTP {get;set;}//Логин SMTP
		[DataMember]
		[ProtoMember(16)]
		public string/*(200)*/ ПарольSMTP {get;set;}//Пароль SMTP
		[DataMember]
		[ProtoMember(17)]
		public decimal/*(4)*/ ВремяОжиданияСервера {get;set;}//Время ожидания сервера
		[DataMember]
		[ProtoMember(18)]
		public bool ОставлятьКопииСообщенийНаСервере {get;set;}//Оставлять копии сообщений на сервере
		[DataMember]
		[ProtoMember(19)]
		public bool УдалятьПисьмаССервераЧерез {get;set;}//Удалять письма с сервера через
		[DataMember]
		[ProtoMember(20)]
		public decimal/*(3)*/ КоличествоДнейУдаленияПисемССервера {get;set;}//Количество дней удаления писем с сервера
		[DataMember]
		[ProtoMember(21)]
		public string/*(150)*/ АдресЭлектроннойПочты {get;set;}//Адрес электронной почты
		[DataMember]
		[ProtoMember(22)]
		public V82.СправочникиСсылка.ГруппыПисемЭлектроннойПочты ГруппаВходящие {get;set;}//Группа входящие
		[DataMember]
		[ProtoMember(23)]
		public V82.СправочникиСсылка.ГруппыПисемЭлектроннойПочты ГруппаИсходящие {get;set;}//Группа исходящие
		[DataMember]
		[ProtoMember(24)]
		public V82.СправочникиСсылка.ГруппыПисемЭлектроннойПочты ГруппаУдаленные {get;set;}//Группа удаленные
		[DataMember]
		[ProtoMember(25)]
		public V82.СправочникиСсылка.ГруппыПисемЭлектроннойПочты ГруппаЧерновики {get;set;}//Группа черновики
		[DataMember]
		[ProtoMember(26)]
		public V82.СправочникиСсылка.ГруппыПисемЭлектроннойПочты ГруппаНежелательные {get;set;}//Группа нежелательные
		[DataMember]
		[ProtoMember(27)]
		public V82.Перечисления/*Ссылка*/.ВидыТекстовЭлектронныхПисем ФорматТекстаПисьмаПоУмолчанию {get;set;}//Формат текста письма по умолчанию
		[DataMember]
		[ProtoMember(28)]
		public string/*(0)*/ ТекстПодписи {get;set;}//Текст подписи
		[DataMember]
		[ProtoMember(29)]
		public bool ДобавлятьПодписьКИсходящимПисьмам {get;set;}//Добавлять подпись к исходящим письмам
		[DataMember]
		[ProtoMember(30)]
		public bool ДобавлятьПодписьКОтветамИПересылкам {get;set;}//Добавлять подпись к ответам и пересылкам
		[DataMember]
		[ProtoMember(31)]
		public bool АвтоПолучениеОтправкаСообщений {get;set;}//Авто получение/отправка сообщений
		[DataMember]
		[ProtoMember(32)]
		public decimal/*(2)*/ ИнтервалАвтоПолученияОтправкиСообщений {get;set;}//Интервал авто получения/отправки сообщений (в минутах)
		[DataMember]
		[ProtoMember(33)]
		public V82.СправочникиСсылка.Пользователи ОтветственныйЗаАвтоПолучениеОтправкуСообщений {get;set;}//Ответственный за авто получение отправку сообщений
		[DataMember]
		[ProtoMember(34)]
		public bool ПомещатьОтветыИПереадресацииВТужеГруппу {get;set;}//Помещать ответы и переадресации в туже группу
		[DataMember]
		[ProtoMember(35)]
		public V82.Перечисления/*Ссылка*/.ВидыДействийАвтоПолученияОтправкиЭлектронныхПисем ДействиеАвтополученияОтправкиСообщений {get;set;}//Действие автополучения отправки сообщений
		[DataMember]
		[ProtoMember(36)]
		public bool АвтоматическаяУстановкаПометкиРассмотрено {get;set;}//Автоматическая установка пометки рассмотрено
		[DataMember]
		[ProtoMember(37)]
		public decimal/*(2)*/ ИнтервалАвтоматическойУстановкиОтметкиРассмотрено {get;set;}//Интервал автоматической установки отметки рассмотрено
		[DataMember]
		[ProtoMember(38)]
		public bool АвтоматическаяУстановкаПометкиРассмотреноПриОтвете {get;set;}//Автоматическая установка пометки рассмотрено при ответе
		[DataMember]
		[ProtoMember(39)]
		public bool АвтоматическаяУстановкаПометкиРассмотреноПриПолученииОтвета {get;set;}//Автоматическая установка пометки рассмотрено при ответе или переадресации
		[DataMember]
		[ProtoMember(40)]
		public bool ИспользоватьКлассификациюПисемПоПредметам {get;set;}//Использовать классификацию писем по предметам
		[DataMember]
		[ProtoMember(41)]
		public bool ЗаполнятьПустойПредметДляНовыхПисемИзТемыПисьма {get;set;}//Заполнять пустой предмет для новых писем из темы письма
		[DataMember]
		[ProtoMember(42)]
		public bool ДляВходящихОтветовИПереадресацийИскатьПисьмаОснованияИЗаполнятьПредмет {get;set;}//Для входящих ответов и переадресаций искать письма основания и заполнять предмет
		[DataMember]
		[ProtoMember(43)]
		public bool ДляВходящихОтветовИПереадресацийИскатьПисьмаОснованияИЗаполнятьОснованиеНовогоПисьма {get;set;}//Для входящих ответов и переадресаций искать письма основания и заполнять основание нового письма
		[DataMember]
		[ProtoMember(44)]
		public bool ДляВходящихОтветовИПереадресацийИскатьПисьмаОснованияИЗаполнятьГруппуПисемНовогоПисьма {get;set;}//Для входящих ответов и переадресаций искать письма основания и заполнять группу писем нового письма
		[DataMember]
		[ProtoMember(45)]
		public bool АвтосохранениеПисем {get;set;}//Автосохранение писем
		[DataMember]
		[ProtoMember(46)]
		public decimal/*(3)*/ ИнтервалАвтосохраненияПисем {get;set;}//Интервал автосохранения писем
		[DataMember]
		[ProtoMember(47)]
		public bool ФорматПисьмаДляОтветовИПереадресацийБратьИзИсходного {get;set;}//Формат письма для ответов и переадресаций брать из исходного
		[DataMember]
		[ProtoMember(48)]
		public string/*(200)*/ КодировкаПисемПоУмолчанию {get;set;}//Кодировка писем по умолчанию
		[DataMember]
		[ProtoMember(49)]
		public bool КодировкуПисьмаДляОтветовБратьИзИсходного {get;set;}//Кодировку письма для ответов брать из исходного
		[DataMember]
		[ProtoMember(50)]
		public bool ЗаполнятьОбъектыИзАдресовПервогоПисьма {get;set;}//Заполнять объекты из адресов первого письма
		[DataMember]
		[ProtoMember(51)]
		public V82.Перечисления/*Ссылка*/.НазначенияУчетнойЗаписи НазначениеУчетнойЗаписи {get;set;}//Назначение учетной записи
		///<summary>
		///И
		///</summary>
		[DataMember]
		[ProtoMember(52)]
		public bool ИспользоватьДляОтправки {get;set;}//Использовать для отправки
		[DataMember]
		[ProtoMember(53)]
		public bool ИспользоватьДляПолучения {get;set;}//Использовать для получения
		public void Записать()
		{
			//Установка блокировки элемента на горизантально масштабированный кластер.
			//Опционально введение тайм аута на запись одного и того же объекта, не чаще раза в 5-секунд. Защита от спама. упращение алгоритма блокировки.
			//Выделение сервиса для блокировки элемента и генерации кода
			//Выполнение операций контроля без обращений к sql-серверу.
			//Контроль конфликта блокировок.
			//Контроль загрузки булкинсертом гетерогенной коллекции.
			//Контроль уникальности кода для справочников.
			//Контроль уникальности номера для документов, в границах префикса.
			//Контроль владельца, он не может быть группой.
			//Контроль владельца он должен быть задан.
			//Контроль родителя он должен быть группой.
			//Контроль количества уровней, должен соотвествовать метаданным.
			//Контроль версии, объект не должен был быть записан перед чтением текущей записи, алгоритм версионника.
			//Контроль уникальности ссылки
			//Контроль зацикливания
			//Опционально контроль битых ссылок.
			//Соблюдейние транзакционности. ПередЗаписью. Открытие транзации. Валидации. ПриЗаписи. Фиксация транзакции. Информирование о записи элемента.
			using (var Подключение = new SqlConnection(СтрокаСоединения))
			{
				Подключение.Open();
				using (var Команда = Подключение.CreateCommand())
				{
					if(_ЭтоНовый)
					{
						Команда.CommandText = @"
						Insert Into _Reference189(
						_IDRRef
						/*,_Version*/
						,_Marked
						,_IsMetadata
						,_Code
						,_Description
						,_Fld2144
						,_Fld2145
						,_Fld2146
						,_Fld2147
						,_Fld2148
						,_Fld2149
						,_Fld2150
						,_Fld2151
						,_Fld2152
						,_Fld2153
						,_Fld2154
						,_Fld2155
						,_Fld2156
						,_Fld2157
						,_Fld2158RRef
						,_Fld2159RRef
						,_Fld2160RRef
						,_Fld2161RRef
						,_Fld21295RRef
						,_Fld2162RRef
						,_Fld2163
						,_Fld2164
						,_Fld2165
						,_Fld2166
						,_Fld2167
						,_Fld2168RRef
						,_Fld2169
						,_Fld2170RRef
						,_Fld2171
						,_Fld2172
						,_Fld2180
						,_Fld2181
						,_Fld2173
						,_Fld2174
						,_Fld2175
						,_Fld2176
						,_Fld2182
						,_Fld2177
						,_Fld2178
						,_Fld2179
						,_Fld2183
						,_Fld2184
						,_Fld2185
						,_Fld21296RRef
						,_Fld26646
						,_Fld26647)
						Values(
						@Ссылка
						/*,@Версия*/
						,@ПометкаУдаления
						,@Предопределенный
						,@Код
						,@Наименование
						,@SMTPСервер
						,@POP3Сервер
						,@ПортSMTP
						,@ПортPOP3
						,@Логин
						,@Пароль
						,@ТребуетсяSMTPАутентификация
						,@ЛогинSMTP
						,@ПарольSMTP
						,@ВремяОжиданияСервера
						,@ОставлятьКопииСообщенийНаСервере
						,@УдалятьПисьмаССервераЧерез
						,@КоличествоДнейУдаленияПисемССервера
						,@АдресЭлектроннойПочты
						,@ГруппаВходящие
						,@ГруппаИсходящие
						,@ГруппаУдаленные
						,@ГруппаЧерновики
						,@ГруппаНежелательные
						,@ФорматТекстаПисьмаПоУмолчанию
						,@ТекстПодписи
						,@ДобавлятьПодписьКИсходящимПисьмам
						,@ДобавлятьПодписьКОтветамИПересылкам
						,@АвтоПолучениеОтправкаСообщений
						,@ИнтервалАвтоПолученияОтправкиСообщений
						,@ОтветственныйЗаАвтоПолучениеОтправкуСообщений
						,@ПомещатьОтветыИПереадресацииВТужеГруппу
						,@ДействиеАвтополученияОтправкиСообщений
						,@АвтоматическаяУстановкаПометкиРассмотрено
						,@ИнтервалАвтоматическойУстановкиОтметкиРассмотрено
						,@АвтоматическаяУстановкаПометкиРассмотреноПриОтвете
						,@АвтоматическаяУстановкаПометкиРассмотреноПриПолученииОтвета
						,@ИспользоватьКлассификациюПисемПоПредметам
						,@ЗаполнятьПустойПредметДляНовыхПисемИзТемыПисьма
						,@ДляВходящихОтветовИПереадресацийИскатьПисьмаОснованияИЗаполнятьПредмет
						,@ДляВходящихОтветовИПереадресацийИскатьПисьмаОснованияИЗаполнятьОснованиеНовогоПисьма
						,@ДляВходящихОтветовИПереадресацийИскатьПисьмаОснованияИЗаполнятьГруппуПисемНовогоПисьма
						,@АвтосохранениеПисем
						,@ИнтервалАвтосохраненияПисем
						,@ФорматПисьмаДляОтветовИПереадресацийБратьИзИсходного
						,@КодировкаПисемПоУмолчанию
						,@КодировкуПисьмаДляОтветовБратьИзИсходного
						,@ЗаполнятьОбъектыИзАдресовПервогоПисьма
						,@НазначениеУчетнойЗаписи
						,@ИспользоватьДляОтправки
						,@ИспользоватьДляПолучения)";
					}
					else
					{
						Команда.CommandText = @"
						Update _Reference189
						Set
						/*_IDRRef	= @Ссылка*/
						/*,_Version	= @Версия*/
						_Marked	= @ПометкаУдаления
						,_IsMetadata	= @Предопределенный
						,_Code	= @Код
						,_Description	= @Наименование
						,_Fld2144	= @SMTPСервер
						,_Fld2145	= @POP3Сервер
						,_Fld2146	= @ПортSMTP
						,_Fld2147	= @ПортPOP3
						,_Fld2148	= @Логин
						,_Fld2149	= @Пароль
						,_Fld2150	= @ТребуетсяSMTPАутентификация
						,_Fld2151	= @ЛогинSMTP
						,_Fld2152	= @ПарольSMTP
						,_Fld2153	= @ВремяОжиданияСервера
						,_Fld2154	= @ОставлятьКопииСообщенийНаСервере
						,_Fld2155	= @УдалятьПисьмаССервераЧерез
						,_Fld2156	= @КоличествоДнейУдаленияПисемССервера
						,_Fld2157	= @АдресЭлектроннойПочты
						,_Fld2158RRef	= @ГруппаВходящие
						,_Fld2159RRef	= @ГруппаИсходящие
						,_Fld2160RRef	= @ГруппаУдаленные
						,_Fld2161RRef	= @ГруппаЧерновики
						,_Fld21295RRef	= @ГруппаНежелательные
						,_Fld2162RRef	= @ФорматТекстаПисьмаПоУмолчанию
						,_Fld2163	= @ТекстПодписи
						,_Fld2164	= @ДобавлятьПодписьКИсходящимПисьмам
						,_Fld2165	= @ДобавлятьПодписьКОтветамИПересылкам
						,_Fld2166	= @АвтоПолучениеОтправкаСообщений
						,_Fld2167	= @ИнтервалАвтоПолученияОтправкиСообщений
						,_Fld2168RRef	= @ОтветственныйЗаАвтоПолучениеОтправкуСообщений
						,_Fld2169	= @ПомещатьОтветыИПереадресацииВТужеГруппу
						,_Fld2170RRef	= @ДействиеАвтополученияОтправкиСообщений
						,_Fld2171	= @АвтоматическаяУстановкаПометкиРассмотрено
						,_Fld2172	= @ИнтервалАвтоматическойУстановкиОтметкиРассмотрено
						,_Fld2180	= @АвтоматическаяУстановкаПометкиРассмотреноПриОтвете
						,_Fld2181	= @АвтоматическаяУстановкаПометкиРассмотреноПриПолученииОтвета
						,_Fld2173	= @ИспользоватьКлассификациюПисемПоПредметам
						,_Fld2174	= @ЗаполнятьПустойПредметДляНовыхПисемИзТемыПисьма
						,_Fld2175	= @ДляВходящихОтветовИПереадресацийИскатьПисьмаОснованияИЗаполнятьПредмет
						,_Fld2176	= @ДляВходящихОтветовИПереадресацийИскатьПисьмаОснованияИЗаполнятьОснованиеНовогоПисьма
						,_Fld2182	= @ДляВходящихОтветовИПереадресацийИскатьПисьмаОснованияИЗаполнятьГруппуПисемНовогоПисьма
						,_Fld2177	= @АвтосохранениеПисем
						,_Fld2178	= @ИнтервалАвтосохраненияПисем
						,_Fld2179	= @ФорматПисьмаДляОтветовИПереадресацийБратьИзИсходного
						,_Fld2183	= @КодировкаПисемПоУмолчанию
						,_Fld2184	= @КодировкуПисьмаДляОтветовБратьИзИсходного
						,_Fld2185	= @ЗаполнятьОбъектыИзАдресовПервогоПисьма
						,_Fld21296RRef	= @НазначениеУчетнойЗаписи
						,_Fld26646	= @ИспользоватьДляОтправки
						,_Fld26647	= @ИспользоватьДляПолучения
						Where _IDRRef = @Ссылка";
					}
					Команда.Parameters.AddWithValue("Ссылка", Ссылка.ToByteArray());
					/*Команда.Parameters.AddWithValue("Версия", Версия);*/
					Команда.Parameters.AddWithValue("ПометкаУдаления", ПометкаУдаления);
					Команда.Parameters.AddWithValue("Предопределенный", Предопределенный);
					Команда.Parameters.AddWithValue("Код", Код);
					Команда.Parameters.AddWithValue("Наименование", Наименование);
					Команда.Parameters.AddWithValue("SMTPСервер", SMTPСервер);
					Команда.Parameters.AddWithValue("POP3Сервер", POP3Сервер);
					Команда.Parameters.AddWithValue("ПортSMTP", ПортSMTP);
					Команда.Parameters.AddWithValue("ПортPOP3", ПортPOP3);
					Команда.Parameters.AddWithValue("Логин", Логин);
					Команда.Parameters.AddWithValue("Пароль", Пароль);
					Команда.Parameters.AddWithValue("ТребуетсяSMTPАутентификация", ТребуетсяSMTPАутентификация);
					Команда.Parameters.AddWithValue("ЛогинSMTP", ЛогинSMTP);
					Команда.Parameters.AddWithValue("ПарольSMTP", ПарольSMTP);
					Команда.Parameters.AddWithValue("ВремяОжиданияСервера", ВремяОжиданияСервера);
					Команда.Parameters.AddWithValue("ОставлятьКопииСообщенийНаСервере", ОставлятьКопииСообщенийНаСервере);
					Команда.Parameters.AddWithValue("УдалятьПисьмаССервераЧерез", УдалятьПисьмаССервераЧерез);
					Команда.Parameters.AddWithValue("КоличествоДнейУдаленияПисемССервера", КоличествоДнейУдаленияПисемССервера);
					Команда.Parameters.AddWithValue("АдресЭлектроннойПочты", АдресЭлектроннойПочты);
					Команда.Parameters.AddWithValue("ГруппаВходящие", ГруппаВходящие.Ссылка);
					Команда.Parameters.AddWithValue("ГруппаИсходящие", ГруппаИсходящие.Ссылка);
					Команда.Parameters.AddWithValue("ГруппаУдаленные", ГруппаУдаленные.Ссылка);
					Команда.Parameters.AddWithValue("ГруппаЧерновики", ГруппаЧерновики.Ссылка);
					Команда.Parameters.AddWithValue("ГруппаНежелательные", ГруппаНежелательные.Ссылка);
					Команда.Parameters.AddWithValue("ФорматТекстаПисьмаПоУмолчанию", ФорматТекстаПисьмаПоУмолчанию.Ключ());
					Команда.Parameters.AddWithValue("ТекстПодписи", ТекстПодписи);
					Команда.Parameters.AddWithValue("ДобавлятьПодписьКИсходящимПисьмам", ДобавлятьПодписьКИсходящимПисьмам);
					Команда.Parameters.AddWithValue("ДобавлятьПодписьКОтветамИПересылкам", ДобавлятьПодписьКОтветамИПересылкам);
					Команда.Parameters.AddWithValue("АвтоПолучениеОтправкаСообщений", АвтоПолучениеОтправкаСообщений);
					Команда.Parameters.AddWithValue("ИнтервалАвтоПолученияОтправкиСообщений", ИнтервалАвтоПолученияОтправкиСообщений);
					Команда.Parameters.AddWithValue("ОтветственныйЗаАвтоПолучениеОтправкуСообщений", ОтветственныйЗаАвтоПолучениеОтправкуСообщений.Ссылка);
					Команда.Parameters.AddWithValue("ПомещатьОтветыИПереадресацииВТужеГруппу", ПомещатьОтветыИПереадресацииВТужеГруппу);
					Команда.Parameters.AddWithValue("ДействиеАвтополученияОтправкиСообщений", ДействиеАвтополученияОтправкиСообщений.Ключ());
					Команда.Parameters.AddWithValue("АвтоматическаяУстановкаПометкиРассмотрено", АвтоматическаяУстановкаПометкиРассмотрено);
					Команда.Parameters.AddWithValue("ИнтервалАвтоматическойУстановкиОтметкиРассмотрено", ИнтервалАвтоматическойУстановкиОтметкиРассмотрено);
					Команда.Parameters.AddWithValue("АвтоматическаяУстановкаПометкиРассмотреноПриОтвете", АвтоматическаяУстановкаПометкиРассмотреноПриОтвете);
					Команда.Parameters.AddWithValue("АвтоматическаяУстановкаПометкиРассмотреноПриПолученииОтвета", АвтоматическаяУстановкаПометкиРассмотреноПриПолученииОтвета);
					Команда.Parameters.AddWithValue("ИспользоватьКлассификациюПисемПоПредметам", ИспользоватьКлассификациюПисемПоПредметам);
					Команда.Parameters.AddWithValue("ЗаполнятьПустойПредметДляНовыхПисемИзТемыПисьма", ЗаполнятьПустойПредметДляНовыхПисемИзТемыПисьма);
					Команда.Parameters.AddWithValue("ДляВходящихОтветовИПереадресацийИскатьПисьмаОснованияИЗаполнятьПредмет", ДляВходящихОтветовИПереадресацийИскатьПисьмаОснованияИЗаполнятьПредмет);
					Команда.Parameters.AddWithValue("ДляВходящихОтветовИПереадресацийИскатьПисьмаОснованияИЗаполнятьОснованиеНовогоПисьма", ДляВходящихОтветовИПереадресацийИскатьПисьмаОснованияИЗаполнятьОснованиеНовогоПисьма);
					Команда.Parameters.AddWithValue("ДляВходящихОтветовИПереадресацийИскатьПисьмаОснованияИЗаполнятьГруппуПисемНовогоПисьма", ДляВходящихОтветовИПереадресацийИскатьПисьмаОснованияИЗаполнятьГруппуПисемНовогоПисьма);
					Команда.Parameters.AddWithValue("АвтосохранениеПисем", АвтосохранениеПисем);
					Команда.Parameters.AddWithValue("ИнтервалАвтосохраненияПисем", ИнтервалАвтосохраненияПисем);
					Команда.Parameters.AddWithValue("ФорматПисьмаДляОтветовИПереадресацийБратьИзИсходного", ФорматПисьмаДляОтветовИПереадресацийБратьИзИсходного);
					Команда.Parameters.AddWithValue("КодировкаПисемПоУмолчанию", КодировкаПисемПоУмолчанию);
					Команда.Parameters.AddWithValue("КодировкуПисьмаДляОтветовБратьИзИсходного", КодировкуПисьмаДляОтветовБратьИзИсходного);
					Команда.Parameters.AddWithValue("ЗаполнятьОбъектыИзАдресовПервогоПисьма", ЗаполнятьОбъектыИзАдресовПервогоПисьма);
					Команда.Parameters.AddWithValue("НазначениеУчетнойЗаписи", НазначениеУчетнойЗаписи.Ключ());
					Команда.Parameters.AddWithValue("ИспользоватьДляОтправки", ИспользоватьДляОтправки);
					Команда.Parameters.AddWithValue("ИспользоватьДляПолучения", ИспользоватьДляПолучения);
					Команда.ExecuteNonQuery();
				}
			}
		}
		public void Удалить()
		{
			using (var Подключение = new SqlConnection(СтрокаСоединения))
			{
				Подключение.Open();
				using (var Команда = Подключение.CreateCommand())
				{
					Команда.CommandText = @"Delete _Reference189
					Where _IDRRef=@Ссылка";
					Команда.Parameters.AddWithValue("Ссылка", Ссылка.ToByteArray());
					Команда.ExecuteNonQuery();
				}
			}
		}
		/*МодульОбъекта*/

		public object ПроверитьЗаполнениеОбязательныхПолей(/**/)
		{
			//ТекстОшибок = "";
			if(true/*НЕ ЗначениеЗаполнено(АдресЭлектроннойПочты)*/)
			{
				//ТекстОшибок = ТекстОшибок + Символы.ПС + "Не указан адрес (E-mail) учетной записи.";
			}
			if(true/*НЕ ЗначениеЗаполнено(SMTPСервер)*/)
			{
				//ТекстОшибок = ТекстОшибок + Символы.ПС + "Не указано имя SMTP сервера.";
			}
			if(true/*НЕ ЗначениеЗаполнено(ПортSMTP)*/)
			{
				//ТекстОшибок = ТекстОшибок + Символы.ПС + "Не указан порт SMTP сервера.";
			}
			if(true/*НЕ ЗначениеЗаполнено(POP3Сервер)*/)
			{
				//ТекстОшибок = ТекстОшибок + Символы.ПС + "Не указано имя POP3 сервера.";
			}
			if(true/*НЕ ЗначениеЗаполнено(ПортPOP3)*/)
			{
				//ТекстОшибок = ТекстОшибок + Символы.ПС + "Не указан порт POP3 сервера.";
			}
			if(true/*НЕ ЗначениеЗаполнено(Логин)*/)
			{
				//ТекстОшибок = ТекстОшибок + Символы.ПС + "Не указано имя пользователя для доступа к почтовому серверу.";
			}
			return null;
		}
		// Функция определяет, есть ли ссылки в документах ЭлектронноеПисьмо
		//  на группу записей электронных писем
		//
		// Параметры
		//  ГруппаУчетнойЗаписи - СправочникСсылка.ГруппыПисемУчетнойЗаписи
		//
		// Возвращаемое значение:
		//   Булево, если есть ссылки
		//

		public object ЕстьСсылки(/*ГруппаУчетнойЗаписи*/)
		{
			//Запрос = Новый Запрос;
			/*Запрос.Текст = "
	|ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
	|	ЭлектронноеПисьмо.Ссылка
	|ИЗ
	|	Документ.ЭлектронноеПисьмо КАК ЭлектронноеПисьмо
	|ГДЕ
	|	ЭлектронноеПисьмо.ГруппаУчетнойЗаписи = &ГруппаУчетнойЗаписи
	|";*/
			//Запрос.УстановитьПараметр("ГруппаУчетнойЗаписи", ГруппаУчетнойЗаписи);
			return null;
		}
		// Процедура, обработчик события ПередЗаписью объекта
		//

		public void ПередЗаписью(/*Отказ*/)
		{
			if(true/*ОбменДанными.Загрузка*/)
			{
			}
			//СтрокаОшибки = "Учетная запись """ + Наименование + "<" + АдресЭлектроннойПочты + ">" + " не записана.";
			//мНовыеГруппы = Неопределено;
			if(true/*НЕ Константы.ИспользованиеВстроенногоПочтовогоКлиента.Получить()*/)
			{
				/*// Если не установлено использование встроенного почтового клиента разрешим только пометку на удаление.
*/
				if(true/*ЭтоНовый() Или (Не ПометкаУдаления) Или Ссылка.ПометкаУдаления*/)
				{
					//ОбщегоНазначения.СообщитьОбОшибке("В настройках учета не установлено использование встроенного почтового клиента.",, СтрокаОшибки);
					//Отказ = Истина;
				}
			}
			if(true/*НЕ ЗначениеЗаполнено(Наименование)*/)
			{
				//ОбщегоНазначения.СообщитьОбОшибке("Не указано представление учетной записи.",, СтрокаОшибки);
				//Отказ = Истина;
			}
			if(true/*ЗначениеЗаполнено(ГруппаУдаленные) И ЕстьСсылки(ГруппаУдаленные)*/)
			{
				//ОбщегоНазначения.СообщитьОбОшибке(("В группе """ + ГруппаУдаленные + """ есть электронные письма. Данную группу нельзя устанавливать в качестве группы удаленных писем."),, СтрокаОшибки);
				//Отказ = Истина;
			}
			if(true/*ЗначениеЗаполнено(ГруппаЧерновики) И ЕстьСсылки(ГруппаЧерновики)*/)
			{
				//ОбщегоНазначения.СообщитьОбОшибке(("В группе """ + ГруппаЧерновики + """ есть электронные письма. Данную группу нельзя устанавливать в качестве группы черновиков."),, СтрокаОшибки);
				//Отказ = Истина;
			}
			if(true/*ЭтоНовый()*/)
			{
				if(true/*Не ЗначениеЗаполнено(ПолучитьСсылкуНового())*/)
				{
					//УстановитьСсылкуНового(Справочники.УчетныеЗаписиЭлектроннойПочты.ПолучитьСсылку(Новый УникальныйИдентификатор));
				}
				//мНовыеГруппы = Истина;
				//ЭтотОбъект.ГруппаВходящие  = Справочники.ГруппыПисемЭлектроннойПочты.ПолучитьСсылку(Новый УникальныйИдентификатор);
				//ЭтотОбъект.ГруппаИсходящие = Справочники.ГруппыПисемЭлектроннойПочты.ПолучитьСсылку(Новый УникальныйИдентификатор);
				//ЭтотОбъект.ГруппаУдаленные = Справочники.ГруппыПисемЭлектроннойПочты.ПолучитьСсылку(Новый УникальныйИдентификатор);
				//ЭтотОбъект.ГруппаЧерновики = Справочники.ГруппыПисемЭлектроннойПочты.ПолучитьСсылку(Новый УникальныйИдентификатор);
			}
			/*// Проверим предопределенные группы, в них не должно быть одинаковых значений
*/
			//ТаблицаПроверкиГрупп = Новый ТаблицаЗначений;
			//ТаблицаПроверкиГрупп.Колонки.Добавить("Группа");
			//ТаблицаПроверкиГрупп.Колонки.Добавить("Количество");
			if(true/*ЗначениеЗаполнено(ГруппаВходящие)*/)
			{
				//НоваяСтрока = ТаблицаПроверкиГрупп.Добавить();
				//НоваяСтрока.Группа     = ГруппаВходящие;
				//НоваяСтрока.Количество = 1;
			}
			if(true/*ЗначениеЗаполнено(ГруппаИсходящие)*/)
			{
				//НоваяСтрока = ТаблицаПроверкиГрупп.Добавить();
				//НоваяСтрока.Группа     = ГруппаИсходящие;
				//НоваяСтрока.Количество = 1;
			}
			if(true/*ЗначениеЗаполнено(ГруппаУдаленные)*/)
			{
				//НоваяСтрока = ТаблицаПроверкиГрупп.Добавить();
				//НоваяСтрока.Группа     = ГруппаУдаленные;
				//НоваяСтрока.Количество = 1;
			}
			if(true/*ЗначениеЗаполнено(ГруппаЧерновики)*/)
			{
				//НоваяСтрока = ТаблицаПроверкиГрупп.Добавить();
				//НоваяСтрока.Группа     = ГруппаЧерновики;
				//НоваяСтрока.Количество = 1;
			}
			if(true/*ТаблицаПроверкиГрупп.Количество() > 0*/)
			{
				//ТаблицаПроверкиГрупп.Свернуть("Группа", "Количество");
			}
			if(true/*АвтоПолучениеОтправкаСообщений*/)
			{
				if(true/*НЕ ЗначениеЗаполнено(ОтветственныйЗаАвтоПолучениеОтправкуСообщений)*/)
				{
					//ОбщегоНазначения.СообщитьОбОшибке("Не указан ответственный за автополучение/отправку писем.",, СтрокаОшибки);
					//Отказ = Истина;
				}
			}
			if(true/*НЕ ПометкаУдаления*/)
			{
				//Проверка = СокрЛП(ПроверитьЗаполнениеОбязательныхПолей());
				if(true/*ЗначениеЗаполнено(Проверка)*/)
				{
					//ОбщегоНазначения.СообщитьОбОшибке(Проверка,, СтрокаОшибки);
					//Отказ = Истина;
				}
			}
		}
		// Процедура, обработчик события ПриЗаписи объекта
		//

		public void ПриЗаписи(/*Отказ*/)
		{
			if(true/*ОбменДанными.Загрузка*/)
			{
			}
			if(true/*мНовыеГруппы = Истина*/)
			{
				//СтрокаОшибки = "Учетная запись """ + Наименование + "<" + АдресЭлектроннойПочты + ">" + " не записана.";
				/*// Входящие
*/
				//НовыйОбъект = Справочники.ГруппыПисемЭлектроннойПочты.СоздатьЭлемент();
				//НовыйОбъект.УстановитьСсылкуНового(ГруппаВходящие);
				//НовыйОбъект.Владелец                  = Ссылка;
				//НовыйОбъект.Наименование              = "Входящие";
				//НовыйОбъект.ИспользоватьПредметыПисем = ИспользоватьКлассификациюПисемПоПредметам;
				/*// Исходящие
*/
				//НовыйОбъект = Справочники.ГруппыПисемЭлектроннойПочты.СоздатьЭлемент();
				//НовыйОбъект.УстановитьСсылкуНового(ГруппаИсходящие);
				//НовыйОбъект.Владелец                  = Ссылка;
				//НовыйОбъект.Наименование              = "Исходящие";
				//НовыйОбъект.ИспользоватьПредметыПисем = ИспользоватьКлассификациюПисемПоПредметам;
				/*// Удаленные
*/
				//НовыйОбъект = Справочники.ГруппыПисемЭлектроннойПочты.СоздатьЭлемент();
				//НовыйОбъект.УстановитьСсылкуНового(ГруппаУдаленные);
				//НовыйОбъект.Владелец                  = Ссылка;
				//НовыйОбъект.Наименование              = "Удаленные";
				//НовыйОбъект.ИспользоватьПредметыПисем = ИспользоватьКлассификациюПисемПоПредметам;
				/*// Черновики
*/
				//НовыйОбъект = Справочники.ГруппыПисемЭлектроннойПочты.СоздатьЭлемент();
				//НовыйОбъект.УстановитьСсылкуНового(ГруппаЧерновики);
				//НовыйОбъект.Владелец                  = Ссылка;
				//НовыйОбъект.Наименование              = "Черновики";
				//НовыйОбъект.ИспользоватьПредметыПисем = ИспользоватьКлассификациюПисемПоПредметам;
			}
		}
	}
}